#include <iostream>
#include <queue>
using namespace std;
int a[10] = {1, 41, 23, 10, 11, 2, -1, 99, 14, 0};

struct node
{
    int a, b, c;

    //大根堆
    bool operator < (const node& x) const
    {
        return b < x.b;
    }
};

void test()
{
    priority_queue<node> heap1;

    for(int i = 1;i <= 5;i++)
    {
        heap1.push({i, i + 1, i + 2});
    }

    while(heap1.size())
    {
        cout << heap1.top().a << " " << heap1.top().b << " " << heap1.top().c << endl;
        heap1.pop();
    }
}
int main()
{
    // // 大根堆
    // priority_queue<int, vector<int>, less<int>> heap1;
    // // 小根堆
    // priority_queue<int, vector<int>, greater<int>> heap2;

    // for(int i = 0;i < 10;i++)
    // {
    //     heap1.push(a[i]);
    //     heap2.push(a[i]);
    // }
    // while(heap1.size())
    // {
    //     cout << heap1.top() << " ";
    //     heap1.pop();
    // }
    // cout << endl;
    // while(heap2.size())
    // {
    //     cout << heap2.top() << " ";
    //     heap2.pop();
    // }

    test();
    return 0;
}